package com.kaili.pojo.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.kaili.common.checkField.IdCardFeildCheck;
import com.kaili.common.checkField.PhoneFeildCheck;
import com.kaili.utils.Annotation.CheckField;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 *
 * </p>
 *
 * @author cgm
 * @since 2018-05-08
 */
@TableName("hs_ewbs_sign")
public class HsEwbsSign implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 业务流水号
     */
    @ApiModelProperty(hidden = true)
    @TableId("operation_id")
    private String operationId;
    /**
     * 签收单号
     */
    @ApiModelProperty(hidden = true)
    @TableField("sign_no")
    private String signNo;
    /**
     * 签收单制作网点id
     */
    @ApiModelProperty(value = "网点ID", required = true)
    @TableField("site_id")
    @CheckField
    private Integer siteId;
    /**
     * 签收人id
     */
    @ApiModelProperty(hidden = true)
    @TableField("sign_customer_id")
    private Integer signCustomerId;
    /**
     * 签收时间
     */
    @ApiModelProperty(value = "签收时间", required = true)
    @TableField("sign_time")
    @CheckField
    private Date signTime;
    /**
     * 是否代签  0不是代签  1代签
     */
    @ApiModelProperty(value = "签收类型", required = true)
    @TableField("sign_type")
    @CheckField(regexp = "^[0-1]")
    private Integer signType;
    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号", required = true)
    @CheckField(checkHandlerClass = PhoneFeildCheck.class)
    private String phone;
    /**
     * 证件号
     */
    @ApiModelProperty(value = "证件号", required = true)
    @TableField("certificate_no")
    @CheckField(checkHandlerClass = IdCardFeildCheck.class)
    private String certificateNo;
    /**
     * 提付费
     */
    @ApiModelProperty(value = "提付费", required = true)
    @TableField("lift_charge")
    private BigDecimal liftCharge;
    /**
     * 代收货款
     */
    @ApiModelProperty(value = "代收货款", required = true)
    @TableField("cod_charge")
    private BigDecimal codCharge;
    /**
     * 保管费其他
     */
    @ApiModelProperty(value = "保管费其他", required = true)
    @TableField("other_charge")
    private BigDecimal otherCharge;
    /**
     * 应收费
     */
    @ApiModelProperty(value = "应收费", required = true)
    @TableField("should_charge")
    private BigDecimal shouldCharge;
    /**
     * 实收费用
     */
    @ApiModelProperty(value = "实收费用", required = true)
    @TableField("actual_charge")
    private BigDecimal actualCharge;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", required = true)
    private String remark;
    /**
     * 创建人
     */
    @ApiModelProperty(hidden = true)
    @TableField("created_by")
    private Integer createdBy;
    /**
     * 创建时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("created_time")
    private Date createdTime;
    /**
     * 第一次打印时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("first_print_time")
    private Date firstPrintTime;
    /**
     * 最后一次打印时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("last_print_time")
    private Date lastPrintTime;
    /**
     * 打印次数
     */
    @ApiModelProperty(hidden = true)
    @TableField("print_count")
    private Integer printCount;
    /**
     * 设备编号
     */
    @ApiModelProperty(value = "设备编号", required = true)
    @TableField("device_code")
    private String deviceCode;
    /**
     * 数据来源
     */
    @ApiModelProperty(value = "数据来源", required = true)
    @TableField("scan_source_id")
    private Integer scanSourceId;
    /**
     * 是否删除标识  1未删除  0 已删除
     */
    @ApiModelProperty(hidden = true)
    @TableField("rd_status")
    private Integer rdStatus;
    /**
     * 修改时间
     */
    @ApiModelProperty(hidden = true)
    @TableField("modified_time")
    private Date modifiedTime;
    /**
     * 修改人
     */
    @ApiModelProperty(hidden = true)
    @TableField("modified_by")
    private Integer modifiedBy;
    @ApiModelProperty(value = "签收人", required = true)
    @TableField("sign_man")
    private String signMan;
    @TableField("source_type")
    @ApiModelProperty("来源,1标示web端,2标示PDA端")
    private Integer sourceType;

    public String getSignMan() {
        return signMan;
    }

    public void setSignMan(String signMan) {
        this.signMan = signMan;
    }

    public String getOperationId() {
        return operationId;
    }

    public void setOperationId(String operationId) {
        this.operationId = operationId;
    }

    public String getSignNo() {
        return signNo;
    }

    public void setSignNo(String signNo) {
        this.signNo = signNo;
    }

    public Integer getSiteId() {
        return siteId;
    }

    public void setSiteId(Integer siteId) {
        this.siteId = siteId;
    }

    public Integer getSignCustomerId() {
        return signCustomerId;
    }

    public void setSignCustomerId(Integer signCustomerId) {
        this.signCustomerId = signCustomerId;
    }

    public Date getSignTime() {
        return signTime;
    }

    public void setSignTime(Date signTime) {
        this.signTime = signTime;
    }

    public Integer getSignType() {
        return signType;
    }

    public void setSignType(Integer signType) {
        this.signType = signType;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getCertificateNo() {
        return certificateNo;
    }

    public void setCertificateNo(String certificateNo) {
        this.certificateNo = certificateNo;
    }

    public BigDecimal getLiftCharge() {
        return liftCharge;
    }

    public void setLiftCharge(BigDecimal liftCharge) {
        this.liftCharge = liftCharge;
    }

    public BigDecimal getCodCharge() {
        return codCharge;
    }

    public void setCodCharge(BigDecimal codCharge) {
        this.codCharge = codCharge;
    }

    public BigDecimal getOtherCharge() {
        return otherCharge;
    }

    public void setOtherCharge(BigDecimal otherCharge) {
        this.otherCharge = otherCharge;
    }

    public BigDecimal getShouldCharge() {
        return shouldCharge;
    }

    public void setShouldCharge(BigDecimal shouldCharge) {
        this.shouldCharge = shouldCharge;
    }

    public BigDecimal getActualCharge() {
        return actualCharge;
    }

    public void setActualCharge(BigDecimal actualCharge) {
        this.actualCharge = actualCharge;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(Integer createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public Date getFirstPrintTime() {
        return firstPrintTime;
    }

    public void setFirstPrintTime(Date firstPrintTime) {
        this.firstPrintTime = firstPrintTime;
    }

    public Date getLastPrintTime() {
        return lastPrintTime;
    }

    public void setLastPrintTime(Date lastPrintTime) {
        this.lastPrintTime = lastPrintTime;
    }

    public Integer getPrintCount() {
        return printCount;
    }

    public void setPrintCount(Integer printCount) {
        this.printCount = printCount;
    }

    public String getDeviceCode() {
        return deviceCode;
    }

    public void setDeviceCode(String deviceCode) {
        this.deviceCode = deviceCode;
    }

    public Integer getScanSourceId() {
        return scanSourceId;
    }

    public void setScanSourceId(Integer scanSourceId) {
        this.scanSourceId = scanSourceId;
    }

    public Integer getRdStatus() {
        return rdStatus;
    }

    public void setRdStatus(Integer rdStatus) {
        this.rdStatus = rdStatus;
    }

    public Date getModifiedTime() {
        return modifiedTime;
    }

    public void setModifiedTime(Date modifiedTime) {
        this.modifiedTime = modifiedTime;
    }

    public Integer getModifiedBy() {
        return modifiedBy;
    }

    public void setModifiedBy(Integer modifiedBy) {
        this.modifiedBy = modifiedBy;
    }

    public Integer getSourceType() {
        return sourceType;
    }

    public void setSourceType(Integer sourceType) {
        this.sourceType = sourceType;
    }

    @Override
    public String toString() {
        return "HsEwbsSign{" +
        ", operationId=" + operationId +
        ", signNo=" + signNo +
        ", siteId=" + siteId +
        ", signCustomerId=" + signCustomerId +
        ", signTime=" + signTime +
        ", signType=" + signType +
        ", phone=" + phone +
        ", certificateNo=" + certificateNo +
        ", liftCharge=" + liftCharge +
        ", codCharge=" + codCharge +
        ", otherCharge=" + otherCharge +
        ", shouldCharge=" + shouldCharge +
        ", actualCharge=" + actualCharge +
        ", remark=" + remark +
        ", createdBy=" + createdBy +
        ", createdTime=" + createdTime +
        ", firstPrintTime=" + firstPrintTime +
        ", lastPrintTime=" + lastPrintTime +
        ", printCount=" + printCount +
        ", deviceCode=" + deviceCode +
        ", scanSourceId=" + scanSourceId +
        ", rdStatus=" + rdStatus +
        ", modifiedTime=" + modifiedTime +
        ", modifiedBy=" + modifiedBy +
        "}";
    }
}
